package cn.tedu.carehome.foundation.service;

import cn.tedu.carehome.foundation.pojo.dto.OlderAddNewDTO;
import cn.tedu.carehome.foundation.pojo.dto.OlderUpdateDTO;
import cn.tedu.carehome.foundation.pojo.vo.OlderListItemVO;
import cn.tedu.carehome.foundation.pojo.vo.OlderStandardVO;
import cn.tedu.carehome.foundation.restful.JsonPage;
import org.apache.ibatis.annotations.Param;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 处理老人健康信息的业务接口
 *
 * @author 程辉
 */


@Transactional
public interface IOlderService {
    /**
     * 添加老人健康
     * @param olderAddNewDTO 新的老人健康数据
     */
    void addNew(OlderAddNewDTO olderAddNewDTO);

    /**
     * 删除老人健康信息
     * @param id 老人id
     */
    void delete(Long id);

    /**
     * 批量删除老人信息
     * @param ids 若干个老人id
     */
    void deleteByIds(Long[] ids);

    /**
     * 修改老人健康详情
     * @param olderUpdateDTO 封装了新数据的对象
     */
    void updateInfoById(OlderUpdateDTO olderUpdateDTO);
    /**
     * 统计匹配查询内容的老人健康详情
     * @param content 查询的内容
     */
    int countByContent(String content);

    /**
     * 根据老人id查询老人健康信息详情
     * @param id 老人id
     * @return 匹配到的老人健康详情，没有匹配到，则返回null
     */
    OlderStandardVO getStandardById(Long id);

    /**
     * 查询老人健康数据列表
     * @return 老人健康数据
     */
    List<OlderListItemVO> list();

    /**
     * 查询老人分页的健康数据
     * @param page 页数
     * @param size 总数
     * @param content 输入的数据
     * @return 分页的老人健康数据
     */
    List<OlderListItemVO> listLimit(@Param("page") int page, @Param("size") int size, @Param("content") String content);

    JsonPage<OlderListItemVO> listOlderPage(Integer page, Integer pageSize);
}
